const path = require("path");

console.log("文件夹绝对路径", __dirname); // D:\Code\my\server\node-fs
console.log("文件绝对路径", __filename); // D:\Code\my\server\node-fs\path.js
console.log("___________________________________________________________");

/**
 * 前者 __dirname 文件夹绝对路径
 * 后者相对路径
 * 两者拼接计算成绝对路径
 */
console.log(path.resolve(__dirname, "./index.html"));
console.log(path.resolve(__dirname, "index.html")); // 同上
// **不可以写绝对路径**
console.log(path.resolve(__dirname, "/index.html")); // D:\index.html
console.log("___________________________________________________________");

// 连接多个路径片段，返回一个规范化的路径字符串
console.log(path.join(__dirname, "../", "../", "index.html"));

// 规范化路径，解析 '..' 和 '.' 片段
console.log(path.normalize(__dirname));

// 返回路径的扩展名
console.log(path.extname(__filename)); // .js

// 文件名
console.log(path.basename(__filename)); // path.js

// 返回操作系统路径分隔符
console.log(path.sep); // \

// 判断路径是否是绝对路径。
console.log(path.isAbsolute("../blog")); // false

// 返回从 from 到 to 的相对路径。
console.log(path.relative("./view/data.txt", "./copy/data-bak.txt")); // ..\..\copy\data-bak.txt

// 返回路径的最后一部分
console.log(path.basename(__dirname, ".js")); // .js 表示去除文件名后缀 path

console.log("___________________________________________________________");
/**
 * 将路径解析为对象
 * root // 盘符
 * dir // 文件夹路径
 * base 文件名
 * ext 扩展名
 * name 文件名无扩展
 */
console.log(path.parse(__dirname));
